package lkx.demo.test2;

/**
 *
 * 测试变量的基本使用
 *
 * 1. 变量的理解：内存中的一个存储区域，该区域的数据可以在同一类型范围内不断变化
 *
 * 2. 变量的构成包含三个要素：数据类型、变量名、存储的值
 *
 * 3. Java中变量声明的格式：数据类型 变量名 = 变量值
 *
 * 4. Java中的变量按照数据类型来分类：
 * 	基本数据类型（8种）:
 * 		整型：byte \ short \ int \ long
 * 		浮点型：float \ double
 * 		字符型：char
 * 		布尔型：boolean
 *
 * 	引用数据类型：
 * 		类(class)
 * 		数组(array)
 * 		接口(interface)
 *
 * 		枚举(enum)
 * 		注解(annotation)
 * 		记录(record)
 *
 * 5. 定义变量时，变量名要遵循标识符命名的规则和规范。
 *
 * 6. 说明：
 * ① 变量都有其作用域。变量只在作用域内是有效的，出了作用域就失效了。
 * ② 在同一个作用域内，不能声明两个同名的变量
 * ③ 定义好变量以后，就可以通过变量名的方式对变量进行调用和运算。
 * ④ 变量值在赋值时，必须满足变量的数据类型，并且在数据类型有效的范围内变化。
 *
 *
 *
 * @author kunxianli
 * @date 2024/01/04 16:46
 **/
public class TestVariable1 {

    public static void main(String[] args) {
        // 定义一个变量。方式1
        int age; // 先声明
        age = 18; // 后赋值

        // 定义变量的方式2：声明与初始化合并
        String name = "张三";

//        一次可声明多个变量
        char a,b,c;
        a='你';
//        多个变量也可以连续赋值
        b=c='好';
//        相同数据类型的变量也可以相互赋值
        a = c;

//        在同一个作用域内，不能声明两个同名的变量
//        int age = 19; // 这里是错的，因为上面已经定义过一个变量名叫age的变量了。

//        定义好变量以后，就可以通过变量名的方式对变量进行调用和运算。
        System.out.println(name);

        // 变量值在赋值时，必须满足变量的数据类型，并且在数据类型有效的范围内变化。
//        byte b = 128; // 这个是错的，因为byte 类型的数据范围是 -128~127




    }

    public void testVarScope(){
//       变量都有其作用域。变量只在作用域内是有效的，出了作用域就失效了。
//        System.out.println(name); // 这里是错的，因为name已经出了作用域了。
    }

}
